.class public abstract Lcom/nemustech/tiffany/world/TFModel;
.super Lcom/nemustech/tiffany/world/TFObject;
.source "TFModel.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/nemustech/tiffany/world/TFModel$OnTouchListener;,
        Lcom/nemustech/tiffany/world/TFModel$JitImageProvider;
    }
.end annotation


# static fields
.field private static final TAG:Ljava/lang/String; = "TFModel"

.field private static final mHandler:Landroid/os/Handler;

.field private static mMirrorY:F

.field private static mObjectY:F


# instance fields
.field protected mBeautyReflection:Z

.field private mColorMask:Z

.field private mColorMaskB:F

.field private mColorMaskG:F

.field private mColorMaskR:F

.field mFacingFront:Z

.field mHitFace:I

.field mHitPoint:[F

.field mHitTestLine:[F

.field mJitImageProvider:Lcom/nemustech/tiffany/world/TFModel$JitImageProvider;

.field private mLockImageCache:Z

.field private mLongDownX:F

.field private mLongDownY:F

.field private mLongPressHandler:Ljava/lang/Runnable;

.field private mLongPressValid:Z

.field private mOnTouchListener:Lcom/nemustech/tiffany/world/TFModel$OnTouchListener;

.field protected mShowBackFace:Z

.field private mTapAbsX:F

.field private mTapAbsY:F

.field protected mTextureBuffer:Ljava/nio/FloatBuffer;

.field mTextureFilter:[I

.field protected mTextures:Lcom/nemustech/tiffany/world/TFTextures;

.field private mTouchable:Z

.field protected mTouchedIndex:I

.field protected mTranslucentMode:Z

.field mUnMVBuffer:[F

.field mVertexBuffer:Ljava/nio/FloatBuffer;


# direct methods
.method static constructor <clinit>()V
    .locals 1

    .prologue
    .line 1116
    new-instance v0, Landroid/os/Handler;

    invoke-direct {v0}, Landroid/os/Handler;-><init>()V

    sput-object v0, Lcom/nemustech/tiffany/world/TFModel;->mHandler:Landroid/os/Handler;

    return-void
.end method

.method public constructor <init>()V
    .locals 5

    .prologue
    const/16 v4, 0x8

    const/4 v1, 0x0

    const/4 v3, -0x1

    const/4 v2, 0x1

    .line 24
    invoke-direct {p0}, Lcom/nemustech/tiffany/world/TFObject;-><init>()V

    .line 1082
    new-array v0, v4, [F

    iput-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mHitPoint:[F

    .line 1083
    iput v3, p0, Lcom/nemustech/tiffany/world/TFModel;->mHitFace:I

    .line 1084
    new-array v0, v4, [F

    iput-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mHitTestLine:[F

    .line 1085
    const/16 v0, 0x10

    new-array v0, v0, [F

    iput-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mUnMVBuffer:[F

    .line 1089
    iput v3, p0, Lcom/nemustech/tiffany/world/TFModel;->mTouchedIndex:I

    .line 1118
    new-instance v0, Lcom/nemustech/tiffany/world/TFModel$3;

    invoke-direct {v0, p0}, Lcom/nemustech/tiffany/world/TFModel$3;-><init>(Lcom/nemustech/tiffany/world/TFModel;)V

    iput-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mLongPressHandler:Ljava/lang/Runnable;

    .line 1124
    iput-boolean v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mColorMask:Z

    .line 25
    iput-boolean v2, p0, Lcom/nemustech/tiffany/world/TFModel;->mVisible:Z

    .line 26
    iput-boolean v2, p0, Lcom/nemustech/tiffany/world/TFModel;->mShouldDraw:Z

    .line 27
    iput-boolean v2, p0, Lcom/nemustech/tiffany/world/TFModel;->mTouchable:Z

    .line 28
    iput-boolean v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mFacingFront:Z

    .line 29
    new-instance v0, Lcom/nemustech/tiffany/world/TFTextures;

    const/4 v1, 0x2

    invoke-direct {v0, p0, v1}, Lcom/nemustech/tiffany/world/TFTextures;-><init>(Lcom/nemustech/tiffany/world/TFModel;I)V

    iput-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextures:Lcom/nemustech/tiffany/world/TFTextures;

    .line 30
    const/high16 v0, 0x3f80

    iput v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mOpacity:F

    .line 31
    iput v3, p0, Lcom/nemustech/tiffany/world/TFModel;->mItemIndex:I

    .line 32
    iput-boolean v2, p0, Lcom/nemustech/tiffany/world/TFModel;->mShowBackFace:Z

    .line 33
    return-void
.end method

.method static synthetic access$000(Lcom/nemustech/tiffany/world/TFModel;)Z
    .locals 1
    .parameter "x0"

    .prologue
    .line 18
    iget-boolean v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mLongPressValid:Z

    return v0
.end method

.method static synthetic access$100(Lcom/nemustech/tiffany/world/TFModel;)F
    .locals 1
    .parameter "x0"

    .prologue
    .line 18
    iget v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mLongDownX:F

    return v0
.end method

.method static synthetic access$200(Lcom/nemustech/tiffany/world/TFModel;)F
    .locals 1
    .parameter "x0"

    .prologue
    .line 18
    iget v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mLongDownY:F

    return v0
.end method

.method static synthetic access$300(Lcom/nemustech/tiffany/world/TFModel;)Lcom/nemustech/tiffany/world/TFModel$OnTouchListener;
    .locals 1
    .parameter "x0"

    .prologue
    .line 18
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mOnTouchListener:Lcom/nemustech/tiffany/world/TFModel$OnTouchListener;

    return-object v0
.end method

.method static doHitTestVertexTrigangle([FIII[F[FI[FI[FI)I
    .locals 23
    .parameter "vertex"
    .parameter "v0Offset"
    .parameter "v1Offset"
    .parameter "v2Offset"
    .parameter "hitTestLine"
    .parameter "hitPoint"
    .parameter "hitPointOffset"
    .parameter "uvt"
    .parameter "uvtOffset"
    .parameter "workBuffer"
    .parameter "workOffset"

    .prologue
    .line 989
    add-int/lit8 v16, p10, 0x0

    .line 990
    .local v16, _v0:I
    add-int/lit8 v22, p10, 0x4

    .line 991
    .local v22, _v1_0:I
    add-int/lit8 v10, p10, 0x8

    .line 992
    .local v10, _v2_0:I
    add-int/lit8 v14, p10, 0xc

    .line 993
    .local v14, _p0:I
    add-int/lit8 v8, p10, 0x10

    .line 994
    .local v8, _p1_0:I
    add-int/lit8 v6, p10, 0x14

    .line 995
    .local v6, _pvec:I
    add-int/lit8 v18, p10, 0x18

    .line 996
    .local v18, _qvec:I
    add-int/lit8 v12, p10, 0x1c

    .line 997
    .local v12, _tvec:I
    move-object/from16 v5, p9

    .line 998
    .local v5, m:[F
    const p9, 0x358637bd

    .line 1003
    .local p9, EPSILON:F
    move-object v0, v5

    move/from16 v1, v16

    move-object/from16 v2, p0

    move/from16 v3, p1

    invoke-static {v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFVector3D;->set([FI[FI)V

    .line 1004
    move-object v0, v5

    move/from16 v1, v22

    move-object/from16 v2, p0

    move/from16 v3, p2

    invoke-static {v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFVector3D;->set([FI[FI)V

    .line 1005
    move-object v0, v5

    move/from16 v1, v22

    move-object v2, v5

    move/from16 v3, v16

    invoke-static {v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFVector3D;->sub([FI[FI)V

    .line 1006
    move-object v0, v5

    move v1, v10

    move-object/from16 v2, p0

    move/from16 v3, p3

    invoke-static {v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFVector3D;->set([FI[FI)V

    .line 1007
    move-object v0, v5

    move v1, v10

    move-object v2, v5

    move/from16 v3, v16

    invoke-static {v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFVector3D;->sub([FI[FI)V

    .line 1008
    const/16 p0, 0x0

    move-object v0, v5

    move v1, v14

    move-object/from16 v2, p4

    move/from16 v3, p0

    invoke-static {v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFVector3D;->set([FI[FI)V

    .line 1009
    .end local p0
    const/16 p0, 0x4

    move-object v0, v5

    move v1, v8

    move-object/from16 v2, p4

    move/from16 v3, p0

    invoke-static {v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFVector3D;->set([FI[FI)V

    .line 1010
    invoke-static {v5, v8, v5, v14}, Lcom/nemustech/tiffany/world/TFVector3D;->sub([FI[FI)V

    move-object v7, v5

    move-object v9, v5

    .line 1012
    invoke-static/range {v5 .. v10}, Lcom/nemustech/tiffany/world/TFVector3D;->cross([FI[FI[FI)V

    .line 1013
    move-object v0, v5

    move/from16 v1, v22

    move-object v2, v5

    move v3, v6

    invoke-static {v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFVector3D;->dot([FI[FI)F

    move-result p0

    .line 1014
    .local p0, det:F
    const p1, -0x4a79c843

    cmpl-float p1, p0, p1

    if-lez p1, :cond_0

    .end local p1
    const p1, 0x358637bd

    cmpg-float p1, p0, p1

    if-gez p1, :cond_0

    .line 1015
    const/16 p0, -0x1

    .line 1039
    .end local p0           #det:F
    .end local p2
    .end local p3
    .end local p4
    .end local p9           #EPSILON:F
    :goto_0
    return p0

    .line 1016
    .restart local p0       #det:F
    .restart local p2
    .restart local p3
    .restart local p4
    .restart local p9       #EPSILON:F
    :cond_0
    const/high16 p1, 0x3f80

    div-float p1, p1, p0

    .local p1, inv_det:F
    move-object v11, v5

    move-object v13, v5

    move-object v15, v5

    .line 1018
    invoke-static/range {v11 .. v16}, Lcom/nemustech/tiffany/world/TFVector3D;->sub([FI[FI[FI)V

    .line 1019
    invoke-static {v5, v12, v5, v6}, Lcom/nemustech/tiffany/world/TFVector3D;->dot([FI[FI)F

    move-result p2

    .end local p2
    mul-float p2, p2, p1

    .line 1020
    .local p2, u:F
    const/16 p3, 0x0

    cmpg-float p3, p2, p3

    if-ltz p3, :cond_1

    .end local p3
    const/high16 p3, 0x3f80

    cmpl-float p3, p2, p3

    if-lez p3, :cond_2

    .line 1021
    :cond_1
    const/16 p0, -0x1

    goto :goto_0

    :cond_2
    move-object/from16 v17, v5

    move-object/from16 v19, v5

    move/from16 v20, v12

    move-object/from16 v21, v5

    .line 1023
    invoke-static/range {v17 .. v22}, Lcom/nemustech/tiffany/world/TFVector3D;->cross([FI[FI[FI)V

    .line 1024
    move-object v0, v5

    move v1, v8

    move-object v2, v5

    move/from16 v3, v18

    invoke-static {v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFVector3D;->dot([FI[FI)F

    move-result p3

    mul-float p3, p3, p1

    .line 1025
    .local p3, v:F
    const/16 p4, 0x0

    cmpg-float p4, p3, p4

    if-ltz p4, :cond_3

    .end local p4
    add-float p4, p2, p3

    const/high16 p9, 0x3f80

    cmpl-float p4, p4, p9

    if-lez p4, :cond_4

    .line 1026
    .end local p9           #EPSILON:F
    :cond_3
    const/16 p0, -0x1

    goto :goto_0

    .line 1028
    :cond_4
    move-object v0, v5

    move v1, v10

    move-object v2, v5

    move/from16 v3, v18

    invoke-static {v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFVector3D;->dot([FI[FI)F

    move-result p4

    mul-float p1, p1, p4

    .line 1029
    .local p1, t:F
    if-eqz p5, :cond_5

    .line 1030
    move-object/from16 v0, p5

    move/from16 v1, p6

    move-object v2, v5

    move v3, v8

    move/from16 v4, p1

    invoke-static {v0, v1, v2, v3, v4}, Lcom/nemustech/tiffany/world/TFVector3D;->mul([FI[FIF)V

    .line 1031
    move-object/from16 v0, p5

    move/from16 v1, p6

    move-object v2, v5

    move v3, v14

    invoke-static {v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFVector3D;->add([FI[FI)V

    .line 1033
    :cond_5
    if-eqz p7, :cond_6

    .line 1034
    add-int/lit8 p4, p8, 0x0

    aput p2, p7, p4

    .line 1035
    add-int/lit8 p2, p8, 0x1

    aput p3, p7, p2

    .line 1036
    .end local p2           #u:F
    add-int/lit8 p2, p8, 0x2

    aput p1, p7, p2

    .line 1039
    :cond_6
    const/16 p1, 0x0

    cmpl-float p0, p0, p1

    if-ltz p0, :cond_7

    .end local p0           #det:F
    .end local p1           #t:F
    const/16 p0, 0x0

    goto :goto_0

    :cond_7
    const/16 p0, 0x1

    goto/16 :goto_0
.end method


# virtual methods
.method _draw(Ljavax/microedition/khronos/opengles/GL10;I)V
    .locals 18
    .parameter "gl"
    .parameter "tickPassed"

    .prologue
    .line 321
    move-object/from16 v0, p0

    iget-boolean v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mVisible:Z

    move v14, v0

    if-eqz v14, :cond_1

    move-object/from16 v0, p0

    iget-boolean v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mShouldDraw:Z

    move v14, v0

    if-eqz v14, :cond_1

    .line 323
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    move-object v14, v0

    if-nez v14, :cond_0

    .line 324
    new-instance v14, Ljava/lang/IllegalStateException;

    const-string v15, "Tried to render a TFModel which is not attached to a world."

    invoke-direct {v14, v15}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v14

    .line 326
    :cond_0
    invoke-virtual/range {p0 .. p2}, Lcom/nemustech/tiffany/world/TFModel;->onBeforeDraw(Ljavax/microedition/khronos/opengles/GL10;I)Z

    move-result v14

    if-nez v14, :cond_2

    .line 444
    :cond_1
    return-void

    .line 328
    :cond_2
    const/4 v14, 0x1

    move-object/from16 v0, p0

    move-object/from16 v1, p1

    move/from16 v2, p2

    move v3, v14

    invoke-virtual {v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFModel;->updateObject(Ljavax/microedition/khronos/opengles/GL10;IZ)Z

    move-result v14

    if-eqz v14, :cond_3

    .line 329
    invoke-virtual/range {p0 .. p2}, Lcom/nemustech/tiffany/world/TFModel;->applyOpacity(Ljavax/microedition/khronos/opengles/GL10;I)V

    .line 331
    :cond_3
    invoke-virtual/range {p0 .. p2}, Lcom/nemustech/tiffany/world/TFModel;->onDraw(Ljavax/microedition/khronos/opengles/GL10;I)Z

    move-result v14

    if-eqz v14, :cond_1

    .line 333
    const/4 v14, 0x0

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mTextures:Lcom/nemustech/tiffany/world/TFTextures;

    move-object v15, v0

    invoke-virtual {v15}, Lcom/nemustech/tiffany/world/TFTextures;->getMaxTextureIndex()I

    move-result v15

    invoke-static {v14, v15}, Ljava/lang/Math;->max(II)I

    move-result v9

    .line 336
    .local v9, maxTextureIndex:I
    move-object/from16 v0, p0

    iget-boolean v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mShowBackFace:Z

    move v14, v0

    if-eqz v14, :cond_9

    if-nez v9, :cond_9

    .line 337
    const/16 v14, 0xb44

    move-object/from16 v0, p1

    move v1, v14

    invoke-interface {v0, v1}, Ljavax/microedition/khronos/opengles/GL10;->glDisable(I)V

    .line 342
    :goto_0
    move-object/from16 v0, p0

    iget-boolean v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mFacingFront:Z

    move v14, v0

    if-eqz v14, :cond_5

    .line 344
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mAngle:[F

    move-object v14, v0

    const/4 v15, 0x0

    aget v14, v14, v15

    neg-float v11, v14

    .line 345
    .local v11, rotationX:F
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mAngle:[F

    move-object v14, v0

    const/4 v15, 0x1

    aget v14, v14, v15

    neg-float v12, v14

    .line 346
    .local v12, rotationY:F
    const/4 v10, 0x0

    .line 348
    .local v10, rotateYFirst:Z
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mParentHolder:Lcom/nemustech/tiffany/world/TFHolder;

    move-object v14, v0

    if-eqz v14, :cond_4

    .line 350
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mParentHolder:Lcom/nemustech/tiffany/world/TFHolder;

    move-object v14, v0

    iget-object v14, v14, Lcom/nemustech/tiffany/world/TFHolder;->mAngle:[F

    const/4 v15, 0x0

    aget v14, v14, v15

    sub-float/2addr v11, v14

    .line 351
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mParentHolder:Lcom/nemustech/tiffany/world/TFHolder;

    move-object v14, v0

    iget-object v14, v14, Lcom/nemustech/tiffany/world/TFHolder;->mAngle:[F

    const/4 v15, 0x1

    aget v14, v14, v15

    sub-float/2addr v12, v14

    .line 352
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mParentHolder:Lcom/nemustech/tiffany/world/TFHolder;

    move-object v14, v0

    iget-boolean v10, v14, Lcom/nemustech/tiffany/world/TFHolder;->mFacingFrontYFirst:Z

    .line 355
    :cond_4
    if-eqz v10, :cond_a

    .line 357
    const/high16 v14, 0x3f80

    const/4 v15, 0x0

    const/16 v16, 0x0

    move-object/from16 v0, p1

    move v1, v12

    move v2, v14

    move v3, v15

    move/from16 v4, v16

    invoke-interface {v0, v1, v2, v3, v4}, Ljavax/microedition/khronos/opengles/GL10;->glRotatef(FFFF)V

    .line 358
    const/4 v14, 0x0

    const/high16 v15, 0x3f80

    const/16 v16, 0x0

    move-object/from16 v0, p1

    move v1, v11

    move v2, v14

    move v3, v15

    move/from16 v4, v16

    invoke-interface {v0, v1, v2, v3, v4}, Ljavax/microedition/khronos/opengles/GL10;->glRotatef(FFFF)V

    .line 368
    .end local v10           #rotateYFirst:Z
    .end local v11           #rotationX:F
    .end local v12           #rotationY:F
    :cond_5
    :goto_1
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    move-object v14, v0

    iget-boolean v14, v14, Lcom/nemustech/tiffany/world/TFWorld;->mBanQueryingMatrix:Z

    if-nez v14, :cond_6

    .line 370
    move-object/from16 v0, p1

    check-cast v0, Lcom/nemustech/tiffany/world/TFGL;

    move-object v5, v0

    .line 371
    .local v5, gl2:Lcom/nemustech/tiffany/world/TFGL;
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mMatrix:[F

    move-object v14, v0

    const/4 v15, 0x0

    invoke-virtual {v5, v14, v15}, Lcom/nemustech/tiffany/world/TFGL;->getMatrix([FI)V

    .line 374
    .end local v5           #gl2:Lcom/nemustech/tiffany/world/TFGL;
    :cond_6
    const/16 v14, 0xde1

    move-object/from16 v0, p1

    move v1, v14

    invoke-interface {v0, v1}, Ljavax/microedition/khronos/opengles/GL10;->glEnable(I)V

    .line 375
    const v14, 0x8074

    move-object/from16 v0, p1

    move v1, v14

    invoke-interface {v0, v1}, Ljavax/microedition/khronos/opengles/GL10;->glEnableClientState(I)V

    .line 376
    const v14, 0x8078

    move-object/from16 v0, p1

    move v1, v14

    invoke-interface {v0, v1}, Ljavax/microedition/khronos/opengles/GL10;->glEnableClientState(I)V

    .line 379
    const/4 v14, 0x3

    const/16 v15, 0x1406

    const/16 v16, 0x0

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mVertexBuffer:Ljava/nio/FloatBuffer;

    move-object/from16 v17, v0

    move-object/from16 v0, p1

    move v1, v14

    move v2, v15

    move/from16 v3, v16

    move-object/from16 v4, v17

    invoke-interface {v0, v1, v2, v3, v4}, Ljavax/microedition/khronos/opengles/GL10;->glVertexPointer(IIILjava/nio/Buffer;)V

    .line 380
    const/4 v14, 0x2

    const/16 v15, 0x1406

    const/16 v16, 0x0

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mTextureBuffer:Ljava/nio/FloatBuffer;

    move-object/from16 v17, v0

    move-object/from16 v0, p1

    move v1, v14

    move v2, v15

    move/from16 v3, v16

    move-object/from16 v4, v17

    invoke-interface {v0, v1, v2, v3, v4}, Ljavax/microedition/khronos/opengles/GL10;->glTexCoordPointer(IIILjava/nio/Buffer;)V

    .line 385
    const/4 v6, 0x0

    .local v6, i:I
    :goto_2
    if-gt v6, v9, :cond_1

    .line 387
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mTextures:Lcom/nemustech/tiffany/world/TFTextures;

    move-object v14, v0

    invoke-virtual {v14, v6}, Lcom/nemustech/tiffany/world/TFTextures;->getTextureInfo(I)Lcom/nemustech/tiffany/world/TFTextureInfo;

    move-result-object v13

    .line 389
    .local v13, texInfo:Lcom/nemustech/tiffany/world/TFTextureInfo;
    if-eqz v13, :cond_b

    .line 390
    invoke-virtual {v13}, Lcom/nemustech/tiffany/world/TFTextureInfo;->getLayerCount()I

    move-result v8

    .line 394
    .local v8, layerCount:I
    :goto_3
    const/4 v7, 0x0

    .local v7, l:I
    :goto_4
    if-ge v7, v8, :cond_e

    .line 396
    move-object/from16 v0, p0

    move-object/from16 v1, p1

    move v2, v6

    move v3, v7

    invoke-virtual {v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFModel;->onSetTexture(Ljavax/microedition/khronos/opengles/GL10;II)V

    .line 399
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    move-object v14, v0

    iget-boolean v14, v14, Lcom/nemustech/tiffany/world/TFWorld;->mReflection:Z

    if-eqz v14, :cond_8

    .line 401
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFObject;->mLocation:[F

    move-object v14, v0

    const/4 v15, 0x1

    aget v14, v14, v15

    sput v14, Lcom/nemustech/tiffany/world/TFModel;->mObjectY:F

    .line 403
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mParentHolder:Lcom/nemustech/tiffany/world/TFHolder;

    move-object v14, v0

    if-eqz v14, :cond_7

    .line 404
    sget v14, Lcom/nemustech/tiffany/world/TFModel;->mObjectY:F

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mParentHolder:Lcom/nemustech/tiffany/world/TFHolder;

    move-object v15, v0

    iget-object v15, v15, Lcom/nemustech/tiffany/world/TFHolder;->mLocation:[F

    const/16 v16, 0x1

    aget v15, v15, v16

    add-float/2addr v14, v15

    sput v14, Lcom/nemustech/tiffany/world/TFModel;->mObjectY:F

    .line 406
    :cond_7
    sget v14, Lcom/nemustech/tiffany/world/TFModel;->mObjectY:F

    move-object/from16 v0, p0

    iget v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mHeight:F

    move v15, v0

    const/high16 v16, 0x4000

    div-float v15, v15, v16

    sub-float/2addr v14, v15

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    move-object v15, v0

    iget v15, v15, Lcom/nemustech/tiffany/world/TFWorld;->mReflectingFloor:F

    sub-float/2addr v14, v15

    sput v14, Lcom/nemustech/tiffany/world/TFModel;->mMirrorY:F

    .line 408
    sget v14, Lcom/nemustech/tiffany/world/TFModel;->mMirrorY:F

    const/4 v15, 0x0

    cmpl-float v14, v14, v15

    if-ltz v14, :cond_8

    sget v14, Lcom/nemustech/tiffany/world/TFModel;->mMirrorY:F

    move-object/from16 v0, p0

    iget v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mHeight:F

    move v15, v0

    cmpg-float v14, v14, v15

    if-gez v14, :cond_8

    .line 410
    move-object/from16 v0, p0

    iget v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mOpacity:F

    move v14, v0

    const/4 v15, 0x1

    move-object/from16 v0, p0

    move-object/from16 v1, p1

    move v2, v14

    move v3, v15

    invoke-virtual {v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFModel;->onSetOpacity(Ljavax/microedition/khronos/opengles/GL10;FZ)V

    .line 411
    invoke-interface/range {p1 .. p1}, Ljavax/microedition/khronos/opengles/GL10;->glPushMatrix()V

    .line 412
    const/4 v14, 0x1

    move-object/from16 v0, p0

    move v1, v6

    move v2, v14

    invoke-virtual {v0, v1, v2}, Lcom/nemustech/tiffany/world/TFModel;->onCullFace(IZ)I

    move-result v14

    move-object/from16 v0, p1

    move v1, v14

    invoke-interface {v0, v1}, Ljavax/microedition/khronos/opengles/GL10;->glCullFace(I)V

    .line 413
    sget v14, Lcom/nemustech/tiffany/world/TFModel;->mMirrorY:F

    move-object/from16 v0, p0

    move-object/from16 v1, p1

    move v2, v14

    invoke-virtual {v0, v1, v2}, Lcom/nemustech/tiffany/world/TFModel;->onCalcReflection(Ljavax/microedition/khronos/opengles/GL10;F)V

    .line 414
    const/4 v14, 0x1

    move-object/from16 v0, p0

    move-object/from16 v1, p1

    move v2, v6

    move v3, v14

    invoke-virtual {v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFModel;->onDrawVertex(Ljavax/microedition/khronos/opengles/GL10;IZ)V

    .line 415
    invoke-interface/range {p1 .. p1}, Ljavax/microedition/khronos/opengles/GL10;->glPopMatrix()V

    .line 420
    :cond_8
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    move-object v14, v0

    iget-boolean v14, v14, Lcom/nemustech/tiffany/world/TFWorld;->mTouchedModelColorMask:Z

    if-eqz v14, :cond_c

    move-object/from16 v0, p0

    iget v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mTouchedIndex:I

    move v14, v0

    if-ne v14, v6, :cond_c

    .line 421
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    move-object v14, v0

    iget v14, v14, Lcom/nemustech/tiffany/world/TFWorld;->mTouchedModelColorMaskR:F

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    move-object v15, v0

    iget v15, v15, Lcom/nemustech/tiffany/world/TFWorld;->mTouchedModelColorMaskG:F

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    move-object/from16 v16, v0

    move-object/from16 v0, v16

    iget v0, v0, Lcom/nemustech/tiffany/world/TFWorld;->mTouchedModelColorMaskB:F

    move/from16 v16, v0

    move-object/from16 v0, p0

    iget v0, v0, Lcom/nemustech/tiffany/world/TFObject;->mOpacity:F

    move/from16 v17, v0

    move-object/from16 v0, p1

    move v1, v14

    move v2, v15

    move/from16 v3, v16

    move/from16 v4, v17

    invoke-interface {v0, v1, v2, v3, v4}, Ljavax/microedition/khronos/opengles/GL10;->glColor4f(FFFF)V

    .line 438
    :goto_5
    const/4 v14, 0x0

    move-object/from16 v0, p0

    move v1, v6

    move v2, v14

    invoke-virtual {v0, v1, v2}, Lcom/nemustech/tiffany/world/TFModel;->onCullFace(IZ)I

    move-result v14

    move-object/from16 v0, p1

    move v1, v14

    invoke-interface {v0, v1}, Ljavax/microedition/khronos/opengles/GL10;->glCullFace(I)V

    .line 439
    const v14, 0x8076

    move-object/from16 v0, p1

    move v1, v14

    invoke-interface {v0, v1}, Ljavax/microedition/khronos/opengles/GL10;->glDisableClientState(I)V

    .line 440
    const/4 v14, 0x0

    move-object/from16 v0, p0

    move-object/from16 v1, p1

    move v2, v6

    move v3, v14

    invoke-virtual {v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFModel;->onDrawVertex(Ljavax/microedition/khronos/opengles/GL10;IZ)V

    .line 394
    add-int/lit8 v7, v7, 0x1

    goto/16 :goto_4

    .line 339
    .end local v6           #i:I
    .end local v7           #l:I
    .end local v8           #layerCount:I
    .end local v13           #texInfo:Lcom/nemustech/tiffany/world/TFTextureInfo;
    :cond_9
    const/16 v14, 0xb44

    move-object/from16 v0, p1

    move v1, v14

    invoke-interface {v0, v1}, Ljavax/microedition/khronos/opengles/GL10;->glEnable(I)V

    goto/16 :goto_0

    .line 362
    .restart local v10       #rotateYFirst:Z
    .restart local v11       #rotationX:F
    .restart local v12       #rotationY:F
    :cond_a
    const/4 v14, 0x0

    const/high16 v15, 0x3f80

    const/16 v16, 0x0

    move-object/from16 v0, p1

    move v1, v11

    move v2, v14

    move v3, v15

    move/from16 v4, v16

    invoke-interface {v0, v1, v2, v3, v4}, Ljavax/microedition/khronos/opengles/GL10;->glRotatef(FFFF)V

    .line 363
    const/high16 v14, 0x3f80

    const/4 v15, 0x0

    const/16 v16, 0x0

    move-object/from16 v0, p1

    move v1, v12

    move v2, v14

    move v3, v15

    move/from16 v4, v16

    invoke-interface {v0, v1, v2, v3, v4}, Ljavax/microedition/khronos/opengles/GL10;->glRotatef(FFFF)V

    goto/16 :goto_1

    .line 392
    .end local v10           #rotateYFirst:Z
    .end local v11           #rotationX:F
    .end local v12           #rotationY:F
    .restart local v6       #i:I
    .restart local v13       #texInfo:Lcom/nemustech/tiffany/world/TFTextureInfo;
    :cond_b
    const/4 v8, 0x1

    .restart local v8       #layerCount:I
    goto/16 :goto_3

    .line 427
    .restart local v7       #l:I
    :cond_c
    move-object/from16 v0, p0

    iget-boolean v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mColorMask:Z

    move v14, v0

    if-eqz v14, :cond_d

    .line 428
    move-object/from16 v0, p0

    iget v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mColorMaskR:F

    move v14, v0

    move-object/from16 v0, p0

    iget v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mColorMaskG:F

    move v15, v0

    move-object/from16 v0, p0

    iget v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mColorMaskB:F

    move/from16 v16, v0

    move-object/from16 v0, p0

    iget v0, v0, Lcom/nemustech/tiffany/world/TFObject;->mOpacity:F

    move/from16 v17, v0

    move-object/from16 v0, p1

    move v1, v14

    move v2, v15

    move/from16 v3, v16

    move/from16 v4, v17

    invoke-interface {v0, v1, v2, v3, v4}, Ljavax/microedition/khronos/opengles/GL10;->glColor4f(FFFF)V

    goto :goto_5

    .line 434
    :cond_d
    move-object/from16 v0, p0

    iget v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mOpacity:F

    move v14, v0

    const/4 v15, 0x0

    move-object/from16 v0, p0

    move-object/from16 v1, p1

    move v2, v14

    move v3, v15

    invoke-virtual {v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFModel;->onSetOpacity(Ljavax/microedition/khronos/opengles/GL10;FZ)V

    goto/16 :goto_5

    .line 385
    :cond_e
    add-int/lit8 v6, v6, 0x1

    goto/16 :goto_2
.end method

.method adjustTextureCoordination(Landroid/graphics/Rect;III)V
    .locals 0
    .parameter "rectTexture"
    .parameter "index"
    .parameter "textureWidth"
    .parameter "textureHeight"

    .prologue
    .line 251
    return-void
.end method

.method public attachTo(Lcom/nemustech/tiffany/world/TFHolder;)V
    .locals 1
    .parameter "parentHolder"

    .prologue
    .line 76
    invoke-virtual {p1}, Lcom/nemustech/tiffany/world/TFHolder;->getSlotCount()I

    move-result v0

    invoke-virtual {p0, p1, v0}, Lcom/nemustech/tiffany/world/TFModel;->attachTo(Lcom/nemustech/tiffany/world/TFHolder;I)V

    .line 77
    return-void
.end method

.method public attachTo(Lcom/nemustech/tiffany/world/TFHolder;I)V
    .locals 4
    .parameter "parentHolder"
    .parameter "index"

    .prologue
    .line 56
    const-class v1, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v1

    .line 57
    :try_start_0
    iget-object v2, p0, Lcom/nemustech/tiffany/world/TFModel;->mParentHolder:Lcom/nemustech/tiffany/world/TFHolder;

    if-eqz v2, :cond_0

    .line 58
    new-instance v2, Ljava/lang/IllegalStateException;

    const-string v3, "Already attached to a holder"

    invoke-direct {v2, v3}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 68
    :catchall_0
    move-exception v2

    monitor-exit v1
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v2

    .line 61
    :cond_0
    :try_start_1
    invoke-virtual {p0}, Lcom/nemustech/tiffany/world/TFModel;->getLayer()Lcom/nemustech/tiffany/world/TFWorld$Layer;

    move-result-object v0

    .line 62
    .local v0, layer:Lcom/nemustech/tiffany/world/TFWorld$Layer;
    if-eqz v0, :cond_1

    .line 63
    invoke-virtual {v0, p0}, Lcom/nemustech/tiffany/world/TFWorld$Layer;->remove(Ljava/lang/Object;)Z

    .line 64
    const/4 v2, 0x0

    invoke-virtual {p0, v2}, Lcom/nemustech/tiffany/world/TFModel;->setLayer(Lcom/nemustech/tiffany/world/TFWorld$Layer;)V

    .line 66
    :cond_1
    invoke-virtual {p1, p0, p2}, Lcom/nemustech/tiffany/world/TFHolder;->addModel(Lcom/nemustech/tiffany/world/TFModel;I)Z

    .line 68
    monitor-exit v1
    :try_end_1
    .catchall {:try_start_1 .. :try_end_1} :catchall_0

    .line 69
    return-void
.end method

.method public attachTo(Lcom/nemustech/tiffany/world/TFWorld;)V
    .locals 4
    .parameter "world"

    .prologue
    .line 87
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 88
    :try_start_0
    sget-boolean v1, Lcom/nemustech/tiffany/world/TFRenderer;->isDrawLoop:Z

    if-eqz v1, :cond_0

    const-string v1, "dansoonie"

    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "TFModel.attachTo: "

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    iget-object v3, p0, Lcom/nemustech/tiffany/world/TFModel;->mDescription:Ljava/lang/String;

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    const-string v3, " to world"

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 89
    :cond_0
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mParentHolder:Lcom/nemustech/tiffany/world/TFHolder;

    if-eqz v1, :cond_1

    .line 92
    new-instance v1, Ljava/lang/IllegalStateException;

    const-string v2, "Detach from its parent holder first"

    invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v1

    .line 100
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1

    .line 96
    :cond_1
    if-nez p1, :cond_2

    :try_start_1
    new-instance v1, Ljava/lang/IllegalArgumentException;

    const-string v2, "World cannot be null"

    invoke-direct {v1, v2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v1

    .line 97
    :cond_2
    iput-object p1, p0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    .line 98
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    iget-object v1, v1, Lcom/nemustech/tiffany/world/TFWorld;->mRenderer:Lcom/nemustech/tiffany/world/TFRenderer;

    invoke-virtual {v1, p0}, Lcom/nemustech/tiffany/world/TFRenderer;->add(Lcom/nemustech/tiffany/world/TFModel;)V

    .line 100
    monitor-exit v0
    :try_end_1
    .catchall {:try_start_1 .. :try_end_1} :catchall_0

    .line 101
    return-void
.end method

.method public banChiselFringe(Z)V
    .locals 8
    .parameter "mode"

    .prologue
    .line 795
    const-class v3, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v3

    .line 796
    :try_start_0
    iget-object v4, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextureFilter:[I

    if-nez v4, :cond_0

    const/4 v4, 0x1

    new-array v4, v4, [I

    iput-object v4, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextureFilter:[I

    .line 798
    :cond_0
    if-eqz p1, :cond_2

    .line 799
    iget-object v4, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextureFilter:[I

    const/4 v5, 0x0

    const/16 v6, 0x2600

    aput v6, v4, v5

    .line 804
    :goto_0
    iget-object v4, p0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    if-eqz v4, :cond_1

    .line 805
    sget-object v0, Lcom/nemustech/tiffany/world/TFRenderer;->mGL:Ljavax/microedition/khronos/opengles/GL10;

    .line 806
    .local v0, gl:Ljavax/microedition/khronos/opengles/GL10;
    const/4 v4, 0x0

    invoke-virtual {p0, v4}, Lcom/nemustech/tiffany/world/TFModel;->getTextureInfo(I)Lcom/nemustech/tiffany/world/TFTextureInfo;

    move-result-object v2

    .line 807
    .local v2, texInfo:Lcom/nemustech/tiffany/world/TFTextureInfo;
    if-eqz v2, :cond_1

    .line 809
    const/4 v4, 0x0

    invoke-virtual {v2, v4}, Lcom/nemustech/tiffany/world/TFTextureInfo;->getLayer(I)Lcom/nemustech/tiffany/world/TFTextureInfo$TFTextureLayer;

    move-result-object v1

    .line 810
    .local v1, layer:Lcom/nemustech/tiffany/world/TFTextureInfo$TFTextureLayer;
    iget-boolean v4, v1, Lcom/nemustech/tiffany/world/TFTextureInfo$TFTextureLayer;->bTexturized:Z

    if-eqz v4, :cond_1

    .line 812
    const/16 v4, 0xde1

    const/4 v5, 0x0

    invoke-virtual {v2, v5}, Lcom/nemustech/tiffany/world/TFTextureInfo;->getLayer(I)Lcom/nemustech/tiffany/world/TFTextureInfo$TFTextureLayer;

    move-result-object v5

    iget v5, v5, Lcom/nemustech/tiffany/world/TFTextureInfo$TFTextureLayer;->texture_name:I

    invoke-interface {v0, v4, v5}, Ljavax/microedition/khronos/opengles/GL10;->glBindTexture(II)V

    .line 813
    const/16 v4, 0xde1

    const/16 v5, 0x2801

    iget-object v6, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextureFilter:[I

    const/4 v7, 0x0

    aget v6, v6, v7

    invoke-interface {v0, v4, v5, v6}, Ljavax/microedition/khronos/opengles/GL10;->glTexParameterx(III)V

    .line 814
    const/16 v4, 0xde1

    const/16 v5, 0x2800

    iget-object v6, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextureFilter:[I

    const/4 v7, 0x0

    aget v6, v6, v7

    invoke-interface {v0, v4, v5, v6}, Ljavax/microedition/khronos/opengles/GL10;->glTexParameterx(III)V

    .line 815
    const/16 v4, 0xde1

    const/16 v5, 0x2802

    const v6, 0x812f

    invoke-interface {v0, v4, v5, v6}, Ljavax/microedition/khronos/opengles/GL10;->glTexParameterx(III)V

    .line 816
    const/16 v4, 0xde1

    const/16 v5, 0x2803

    const v6, 0x812f

    invoke-interface {v0, v4, v5, v6}, Ljavax/microedition/khronos/opengles/GL10;->glTexParameterx(III)V

    .line 817
    iget-object v4, p0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    invoke-static {}, Lcom/nemustech/tiffany/world/TFWorld;->requestRender()V

    .line 821
    .end local v0           #gl:Ljavax/microedition/khronos/opengles/GL10;
    .end local v1           #layer:Lcom/nemustech/tiffany/world/TFTextureInfo$TFTextureLayer;
    .end local v2           #texInfo:Lcom/nemustech/tiffany/world/TFTextureInfo;
    :cond_1
    monitor-exit v3

    .line 822
    return-void

    .line 801
    :cond_2
    iget-object v4, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextureFilter:[I

    const/4 v5, 0x0

    const/16 v6, 0x2601

    aput v6, v4, v5

    goto :goto_0

    .line 821
    :catchall_0
    move-exception v4

    monitor-exit v3
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v4
.end method

.method public clone()Ljava/lang/Object;
    .locals 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/CloneNotSupportedException;
        }
    .end annotation

    .prologue
    .line 36
    const-class v1, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v1

    .line 37
    :try_start_0
    invoke-super {p0}, Lcom/nemustech/tiffany/world/TFObject;->clone()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/nemustech/tiffany/world/TFModel;

    .line 38
    .local v0, clone:Lcom/nemustech/tiffany/world/TFModel;
    const/4 v2, 0x1

    iput-boolean v2, v0, Lcom/nemustech/tiffany/world/TFModel;->mCloneObject:Z

    .line 39
    const/16 v2, 0x8

    new-array v2, v2, [F

    iput-object v2, v0, Lcom/nemustech/tiffany/world/TFModel;->mHitPoint:[F

    .line 40
    const/16 v2, 0x8

    new-array v2, v2, [F

    iput-object v2, v0, Lcom/nemustech/tiffany/world/TFModel;->mHitTestLine:[F

    .line 41
    const/16 v2, 0x10

    new-array v2, v2, [F

    iput-object v2, v0, Lcom/nemustech/tiffany/world/TFModel;->mUnMVBuffer:[F

    .line 42
    const/4 v2, 0x0

    iput-object v2, v0, Lcom/nemustech/tiffany/world/TFModel;->mParentHolder:Lcom/nemustech/tiffany/world/TFHolder;

    .line 43
    const-string v2, "CLONE"

    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    const-string v4, "Cloning model: "

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    move-result-object v3

    const-string v4, " -> "

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 44
    monitor-exit v1

    return-object v0

    .line 45
    .end local v0           #clone:Lcom/nemustech/tiffany/world/TFModel;
    :catchall_0
    move-exception v2

    monitor-exit v1
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v2
.end method

.method public convertModelCoord([FI[FI[FI)V
    .locals 18
    .parameter "modelCoord"
    .parameter "modelCoordOffset"
    .parameter "worldCoord"
    .parameter "worldCoordOffset"
    .parameter "screenCoord"
    .parameter "screenCoordOffset"

    .prologue
    .line 933
    const-class v17, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v17

    .line 934
    const/16 v2, 0x8

    :try_start_0
    new-array v1, v2, [F

    .line 935
    .local v1, buf:[F
    const/4 v11, 0x0

    .line 936
    .local v11, v0:I
    const/4 v12, 0x4

    .line 938
    .local v12, v1:I
    const/4 v2, 0x0

    add-int/lit8 v3, p2, 0x0

    aget v3, p1, v3

    aput v3, v1, v2

    .line 939
    const/4 v2, 0x1

    add-int/lit8 v3, p2, 0x1

    aget v3, p1, v3

    aput v3, v1, v2

    .line 940
    const/4 v2, 0x2

    add-int/lit8 v3, p2, 0x2

    aget v3, p1, v3

    aput v3, v1, v2

    .line 941
    const/4 v2, 0x3

    const/high16 v3, 0x3f80

    aput v3, v1, v2

    .line 942
    const/4 v2, 0x4

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mMatrix:[F

    move-object v3, v0

    const/4 v4, 0x0

    const/4 v6, 0x0

    move-object v5, v1

    invoke-static/range {v1 .. v6}, Landroid/opengl/Matrix;->multiplyMV([FI[FI[FI)V

    .line 944
    if-eqz p3, :cond_0

    .line 945
    add-int/lit8 v2, p4, 0x0

    const/4 v3, 0x4

    aget v3, v1, v3

    aput v3, p3, v2

    .line 946
    add-int/lit8 v2, p4, 0x1

    const/4 v3, 0x5

    aget v3, v1, v3

    aput v3, p3, v2

    .line 947
    add-int/lit8 v2, p4, 0x2

    const/4 v3, 0x6

    aget v3, v1, v3

    aput v3, p3, v2

    .line 949
    :cond_0
    if-eqz p5, :cond_1

    .line 950
    const/4 v2, 0x0

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    move-object v3, v0

    invoke-virtual {v3}, Lcom/nemustech/tiffany/world/TFWorld;->getCamera()Lcom/nemustech/tiffany/world/TFCamera;

    move-result-object v3

    iget-object v3, v3, Lcom/nemustech/tiffany/world/TFCamera;->mMatrix:[F

    const/4 v4, 0x0

    const/4 v6, 0x4

    move-object v5, v1

    invoke-static/range {v1 .. v6}, Landroid/opengl/Matrix;->multiplyMV([FI[FI[FI)V

    .line 952
    const/high16 v2, 0x3f80

    const/4 v3, 0x3

    aget v3, v1, v3

    div-float v9, v2, v3

    .line 953
    .local v9, rw:F
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    move-object v2, v0

    iget-object v2, v2, Lcom/nemustech/tiffany/world/TFWorld;->mRenderer:Lcom/nemustech/tiffany/world/TFRenderer;

    iget v2, v2, Lcom/nemustech/tiffany/world/TFRenderer;->mLeft:I

    int-to-float v8, v2

    .line 954
    .local v8, left:F
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    move-object v2, v0

    iget-object v2, v2, Lcom/nemustech/tiffany/world/TFWorld;->mRenderer:Lcom/nemustech/tiffany/world/TFRenderer;

    iget v2, v2, Lcom/nemustech/tiffany/world/TFRenderer;->mTop:I

    int-to-float v10, v2

    .line 955
    .local v10, top:F
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    move-object v2, v0

    iget-object v2, v2, Lcom/nemustech/tiffany/world/TFWorld;->mRenderer:Lcom/nemustech/tiffany/world/TFRenderer;

    iget v2, v2, Lcom/nemustech/tiffany/world/TFRenderer;->mWidth:I

    int-to-float v14, v2

    .line 956
    .local v14, width:F
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    move-object v2, v0

    iget-object v2, v2, Lcom/nemustech/tiffany/world/TFWorld;->mRenderer:Lcom/nemustech/tiffany/world/TFRenderer;

    iget v2, v2, Lcom/nemustech/tiffany/world/TFRenderer;->mHeight:I

    int-to-float v7, v2

    .line 957
    .local v7, height:F
    const/4 v2, 0x0

    aget v2, v1, v2

    mul-float/2addr v2, v9

    const/high16 v3, 0x3f80

    add-float/2addr v2, v3

    mul-float/2addr v2, v14

    const/high16 v3, 0x3f00

    mul-float/2addr v2, v3

    add-float v15, v8, v2

    .line 958
    .local v15, x:F
    const/high16 v2, 0x3f80

    const/4 v3, 0x1

    aget v3, v1, v3

    mul-float/2addr v3, v9

    sub-float/2addr v2, v3

    mul-float/2addr v2, v7

    const/high16 v3, 0x3f00

    mul-float/2addr v2, v3

    add-float v16, v10, v2

    .line 959
    .local v16, y:F
    const/4 v2, 0x2

    aget v2, v1, v2

    mul-float/2addr v2, v9

    const/high16 v3, 0x3f80

    add-float/2addr v2, v3

    const/high16 v3, 0x3f00

    mul-float v13, v2, v3

    .line 960
    .local v13, w:F
    add-int/lit8 v2, p6, 0x0

    aput v15, p5, v2

    .line 961
    add-int/lit8 v2, p6, 0x1

    aput v16, p5, v2

    .line 962
    add-int/lit8 v2, p6, 0x2

    aput v13, p5, v2

    .line 964
    .end local v7           #height:F
    .end local v8           #left:F
    .end local v9           #rw:F
    .end local v10           #top:F
    .end local v13           #w:F
    .end local v14           #width:F
    .end local v15           #x:F
    .end local v16           #y:F
    :cond_1
    monitor-exit v17

    .line 965
    return-void

    .line 964
    .end local v1           #buf:[F
    .end local v11           #v0:I
    .end local v12           #v1:I
    :catchall_0
    move-exception v2

    monitor-exit v17
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v2
.end method

.method public deleteAllImageResource()V
    .locals 4

    .prologue
    .line 606
    const-class v2, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v2

    .line 607
    :try_start_0
    iget-object v3, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextures:Lcom/nemustech/tiffany/world/TFTextures;

    invoke-virtual {v3}, Lcom/nemustech/tiffany/world/TFTextures;->getMaxTextureIndex()I

    move-result v1

    .line 609
    .local v1, maxTextureIndex:I
    const/4 v0, 0x0

    .local v0, i:I
    :goto_0
    if-gt v0, v1, :cond_0

    .line 610
    invoke-virtual {p0, v0}, Lcom/nemustech/tiffany/world/TFModel;->deleteImageResource(I)V

    .line 609
    add-int/lit8 v0, v0, 0x1

    goto :goto_0

    .line 612
    :cond_0
    monitor-exit v2

    .line 613
    return-void

    .line 612
    .end local v0           #i:I
    .end local v1           #maxTextureIndex:I
    :catchall_0
    move-exception v3

    monitor-exit v2
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v3
.end method

.method public deleteImageResource(I)V
    .locals 3
    .parameter "faceIndex"

    .prologue
    .line 552
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 553
    :try_start_0
    iget-boolean v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mCloneObject:Z

    if-eqz v1, :cond_0

    .line 554
    const-string v1, "TFModel"

    const-string v2, "Tried to delete image resource with cloned model"

    invoke-static {v1, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I

    .line 555
    monitor-exit v0

    .line 559
    :goto_0
    return-void

    .line 557
    :cond_0
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextures:Lcom/nemustech/tiffany/world/TFTextures;

    invoke-virtual {v1, p1}, Lcom/nemustech/tiffany/world/TFTextures;->deleteImageResource(I)V

    .line 558
    monitor-exit v0

    goto :goto_0

    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public forceImageLoading(Lcom/nemustech/tiffany/world/TFWorld;)V
    .locals 3
    .parameter "world"

    .prologue
    .line 490
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    .line 491
    .local v1, originWorld:Lcom/nemustech/tiffany/world/TFWorld;
    move-object v0, p1

    .line 493
    .local v0, designatedWorld:Lcom/nemustech/tiffany/world/TFWorld;
    new-instance v2, Lcom/nemustech/tiffany/world/TFModel$1;

    invoke-direct {v2, p0, v0, v1}, Lcom/nemustech/tiffany/world/TFModel$1;-><init>(Lcom/nemustech/tiffany/world/TFModel;Lcom/nemustech/tiffany/world/TFWorld;Lcom/nemustech/tiffany/world/TFWorld;)V

    .line 511
    .local v2, texturizer:Ljava/lang/Runnable;
    invoke-static {v2}, Lcom/nemustech/tiffany/world/TFWorld;->queueEvent(Ljava/lang/Runnable;)V

    .line 512
    return-void
.end method

.method genTexture(Ljavax/microedition/khronos/opengles/GL10;)V
    .locals 1
    .parameter "gl"

    .prologue
    .line 448
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextures:Lcom/nemustech/tiffany/world/TFTextures;

    invoke-virtual {v0, p1}, Lcom/nemustech/tiffany/world/TFTextures;->genTexture(Ljavax/microedition/khronos/opengles/GL10;)V

    .line 449
    return-void
.end method

.method public getFaceImage(I)Landroid/graphics/Bitmap;
    .locals 5
    .parameter "faceIndex"

    .prologue
    .line 107
    const-class v1, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v1

    .line 110
    :try_start_0
    iget-object v2, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextures:Lcom/nemustech/tiffany/world/TFTextures;

    invoke-virtual {v2, p1}, Lcom/nemustech/tiffany/world/TFTextures;->getTextureInfo(I)Lcom/nemustech/tiffany/world/TFTextureInfo;

    move-result-object v0

    .line 111
    .local v0, texInfo:Lcom/nemustech/tiffany/world/TFTextureInfo;
    if-eqz v0, :cond_2

    .line 114
    iget-object v2, v0, Lcom/nemustech/tiffany/world/TFTextureInfo;->mLayer:[Lcom/nemustech/tiffany/world/TFTextureInfo$TFTextureLayer;

    const/4 v3, 0x0

    aget-object v2, v2, v3

    iget-object v2, v2, Lcom/nemustech/tiffany/world/TFTextureInfo$TFTextureLayer;->bmp:Landroid/graphics/Bitmap;

    if-eqz v2, :cond_0

    .line 115
    iget-object v2, v0, Lcom/nemustech/tiffany/world/TFTextureInfo;->mLayer:[Lcom/nemustech/tiffany/world/TFTextureInfo$TFTextureLayer;

    const/4 v3, 0x0

    aget-object v2, v2, v3

    iget-object v2, v2, Lcom/nemustech/tiffany/world/TFTextureInfo$TFTextureLayer;->bmp:Landroid/graphics/Bitmap;

    monitor-exit v1

    move-object v1, v2

    .line 122
    :goto_0
    return-object v1

    .line 116
    :cond_0
    iget-object v2, p0, Lcom/nemustech/tiffany/world/TFModel;->mJitImageProvider:Lcom/nemustech/tiffany/world/TFModel$JitImageProvider;

    if-eqz v2, :cond_1

    .line 117
    iget-object v2, p0, Lcom/nemustech/tiffany/world/TFModel;->mJitImageProvider:Lcom/nemustech/tiffany/world/TFModel$JitImageProvider;

    invoke-interface {v2, p1}, Lcom/nemustech/tiffany/world/TFModel$JitImageProvider;->getImage(I)Landroid/graphics/Bitmap;

    move-result-object v2

    monitor-exit v1

    move-object v1, v2

    goto :goto_0

    .line 118
    :cond_1
    iget-object v2, v0, Lcom/nemustech/tiffany/world/TFTextureInfo;->mLayer:[Lcom/nemustech/tiffany/world/TFTextureInfo$TFTextureLayer;

    const/4 v3, 0x0

    aget-object v2, v2, v3

    iget v2, v2, Lcom/nemustech/tiffany/world/TFTextureInfo$TFTextureLayer;->resource_id:I

    if-eqz v2, :cond_2

    .line 119
    iget-object v2, v0, Lcom/nemustech/tiffany/world/TFTextureInfo;->mLayer:[Lcom/nemustech/tiffany/world/TFTextureInfo$TFTextureLayer;

    const/4 v3, 0x0

    aget-object v2, v2, v3

    iget-object v2, v2, Lcom/nemustech/tiffany/world/TFTextureInfo$TFTextureLayer;->resources:Landroid/content/res/Resources;

    iget-object v3, v0, Lcom/nemustech/tiffany/world/TFTextureInfo;->mLayer:[Lcom/nemustech/tiffany/world/TFTextureInfo$TFTextureLayer;

    const/4 v4, 0x0

    aget-object v3, v3, v4

    iget v3, v3, Lcom/nemustech/tiffany/world/TFTextureInfo$TFTextureLayer;->resource_id:I

    invoke-static {v2, v3}, Lcom/nemustech/tiffany/world/TFUtils;->decodeResource(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap;

    move-result-object v2

    monitor-exit v1

    move-object v1, v2

    goto :goto_0

    .line 122
    :cond_2
    const/4 v2, 0x0

    monitor-exit v1

    move-object v1, v2

    goto :goto_0

    .line 123
    .end local v0           #texInfo:Lcom/nemustech/tiffany/world/TFTextureInfo;
    :catchall_0
    move-exception v2

    monitor-exit v1
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v2
.end method

.method getHitFace([F)I
    .locals 4
    .parameter "near"

    .prologue
    const/4 v3, 0x0

    .line 873
    const/high16 v1, -0x80

    aput v1, p1, v3

    .line 875
    const/4 v0, 0x0

    .local v0, i:I
    :goto_0
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mHitPoint:[F

    array-length v1, v1

    if-ge v0, v1, :cond_1

    .line 876
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mHitPoint:[F

    aget v1, v1, v0

    invoke-static {v1}, Ljava/lang/Float;->isNaN(F)Z

    move-result v1

    if-eqz v1, :cond_0

    .line 877
    const/4 v1, -0x1

    .line 879
    :goto_1
    return v1

    .line 875
    :cond_0
    add-int/lit8 v0, v0, 0x1

    goto :goto_0

    .line 878
    :cond_1
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mHitPoint:[F

    const/4 v2, 0x6

    aget v1, v1, v2

    aput v1, p1, v3

    .line 879
    iget v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mHitFace:I

    goto :goto_1
.end method

.method public getHitPoint([FI)V
    .locals 4
    .parameter "result"
    .parameter "rOffset"

    .prologue
    .line 888
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 889
    :try_start_0
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mHitPoint:[F

    const/4 v2, 0x0

    iget-object v3, p0, Lcom/nemustech/tiffany/world/TFModel;->mHitPoint:[F

    array-length v3, v3

    invoke-static {v1, v2, p1, p2, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 890
    monitor-exit v0

    .line 891
    return-void

    .line 890
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public getHitPointOnModel([FI)V
    .locals 4
    .parameter "result"
    .parameter "rOffset"

    .prologue
    .line 897
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 898
    :try_start_0
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mHitPoint:[F

    const/4 v2, 0x0

    const/4 v3, 0x4

    invoke-static {v1, v2, p1, p2, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 899
    monitor-exit v0

    .line 900
    return-void

    .line 899
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public getHitPointOnWorld([FI)V
    .locals 4
    .parameter "result"
    .parameter "rOffset"

    .prologue
    .line 906
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 907
    :try_start_0
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mHitPoint:[F

    const/4 v2, 0x4

    const/4 v3, 0x4

    invoke-static {v1, v2, p1, p2, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 908
    monitor-exit v0

    .line 909
    return-void

    .line 908
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public getHitTestLineOnModel([FI)V
    .locals 4
    .parameter "result"
    .parameter "rOffset"

    .prologue
    .line 915
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 916
    :try_start_0
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mHitTestLine:[F

    const/4 v2, 0x0

    iget-object v3, p0, Lcom/nemustech/tiffany/world/TFModel;->mHitTestLine:[F

    array-length v3, v3

    invoke-static {v1, v2, p1, p2, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 917
    monitor-exit v0

    .line 918
    return-void

    .line 917
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public getImageCacheLockStatus()Z
    .locals 2

    .prologue
    .line 600
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 601
    :try_start_0
    iget-boolean v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mLockImageCache:Z

    monitor-exit v0

    return v1

    .line 602
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public getIndex()I
    .locals 1

    .prologue
    .line 165
    const/4 v0, 0x0

    return v0
.end method

.method public getJitImageProvider()Lcom/nemustech/tiffany/world/TFModel$JitImageProvider;
    .locals 2

    .prologue
    .line 185
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 186
    :try_start_0
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mJitImageProvider:Lcom/nemustech/tiffany/world/TFModel$JitImageProvider;

    monitor-exit v0

    return-object v1

    .line 187
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public getLockStatus()Z
    .locals 2

    .prologue
    .line 616
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 617
    :try_start_0
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mParentHolder:Lcom/nemustech/tiffany/world/TFHolder;

    if-eqz v1, :cond_0

    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mParentHolder:Lcom/nemustech/tiffany/world/TFHolder;

    invoke-virtual {v1}, Lcom/nemustech/tiffany/world/TFHolder;->getLockStatus()Z

    move-result v1

    if-eqz v1, :cond_0

    .line 618
    const/4 v1, 0x1

    monitor-exit v0

    move v0, v1

    .line 620
    :goto_0
    return v0

    :cond_0
    invoke-super {p0}, Lcom/nemustech/tiffany/world/TFObject;->getLockStatus()Z

    move-result v1

    monitor-exit v0

    move v0, v1

    goto :goto_0

    .line 621
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public getTapAbsX()F
    .locals 2

    .prologue
    .line 829
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 830
    :try_start_0
    iget v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mTapAbsX:F

    monitor-exit v0

    return v1

    .line 831
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public getTapAbsY()F
    .locals 2

    .prologue
    .line 839
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 840
    :try_start_0
    iget v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mTapAbsY:F

    monitor-exit v0

    return v1

    .line 841
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public getTextureInfo(I)Lcom/nemustech/tiffany/world/TFTextureInfo;
    .locals 2
    .parameter "faceIndex"

    .prologue
    .line 127
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 128
    :try_start_0
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextures:Lcom/nemustech/tiffany/world/TFTextures;

    invoke-virtual {v1, p1}, Lcom/nemustech/tiffany/world/TFTextures;->getTextureInfo(I)Lcom/nemustech/tiffany/world/TFTextureInfo;

    move-result-object v1

    monitor-exit v0

    return-object v1

    .line 129
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public getTouchedFace()I
    .locals 2

    .prologue
    .line 1070
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 1071
    :try_start_0
    iget v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mTouchedIndex:I

    monitor-exit v0

    return v1

    .line 1072
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method handleDown(IFF)Z
    .locals 4
    .parameter "faceIndex"
    .parameter "x"
    .parameter "y"

    .prologue
    const/4 v1, 0x1

    .line 688
    iput p1, p0, Lcom/nemustech/tiffany/world/TFModel;->mTouchedIndex:I

    .line 690
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mOnTouchListener:Lcom/nemustech/tiffany/world/TFModel$OnTouchListener;

    if-eqz v0, :cond_1

    .line 692
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mOnTouchListener:Lcom/nemustech/tiffany/world/TFModel$OnTouchListener;

    invoke-interface {v0, p0, p1, p2, p3}, Lcom/nemustech/tiffany/world/TFModel$OnTouchListener;->onTouchDown(Lcom/nemustech/tiffany/world/TFModel;IFF)Z

    move-result v0

    if-eqz v0, :cond_0

    move v0, v1

    .line 701
    :goto_0
    return v0

    .line 696
    :cond_0
    iput-boolean v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mLongPressValid:Z

    .line 697
    sget-object v0, Lcom/nemustech/tiffany/world/TFModel;->mHandler:Landroid/os/Handler;

    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mLongPressHandler:Ljava/lang/Runnable;

    iget-object v2, p0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    invoke-virtual {v2}, Lcom/nemustech/tiffany/world/TFWorld;->getLongPressDuration()I

    move-result v2

    int-to-long v2, v2

    invoke-virtual {v0, v1, v2, v3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z

    .line 700
    :cond_1
    invoke-virtual {p0, p2, p3}, Lcom/nemustech/tiffany/world/TFModel;->onTouchDown(FF)V

    .line 701
    const/4 v0, 0x0

    goto :goto_0
.end method

.method handleDrag(FFFFI)Z
    .locals 9
    .parameter "start_x"
    .parameter "start_y"
    .parameter "end_x"
    .parameter "end_y"
    .parameter "tickPassed"

    .prologue
    const/4 v8, 0x0

    .line 719
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mOnTouchListener:Lcom/nemustech/tiffany/world/TFModel$OnTouchListener;

    if-eqz v0, :cond_1

    .line 720
    iget-boolean v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mLongPressValid:Z

    if-eqz v0, :cond_0

    .line 721
    iput-boolean v8, p0, Lcom/nemustech/tiffany/world/TFModel;->mLongPressValid:Z

    .line 722
    sget-object v0, Lcom/nemustech/tiffany/world/TFModel;->mHandler:Landroid/os/Handler;

    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mLongPressHandler:Ljava/lang/Runnable;

    invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V

    .line 724
    :cond_0
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mOnTouchListener:Lcom/nemustech/tiffany/world/TFModel$OnTouchListener;

    iget v2, p0, Lcom/nemustech/tiffany/world/TFModel;->mTouchedIndex:I

    move-object v1, p0

    move v3, p1

    move v4, p2

    move v5, p3

    move v6, p4

    move v7, p5

    invoke-interface/range {v0 .. v7}, Lcom/nemustech/tiffany/world/TFModel$OnTouchListener;->onTouchDrag(Lcom/nemustech/tiffany/world/TFModel;IFFFFI)Z

    move-result v0

    if-eqz v0, :cond_1

    .line 725
    const/4 v0, 0x1

    .line 728
    :goto_0
    return v0

    .line 727
    :cond_1
    invoke-virtual/range {p0 .. p5}, Lcom/nemustech/tiffany/world/TFModel;->onTouchDrag(FFFFI)V

    move v0, v8

    .line 728
    goto :goto_0
.end method

.method handleTap(IFF)Z
    .locals 2
    .parameter "selectedIndex"
    .parameter "x"
    .parameter "y"

    .prologue
    .line 665
    iput p2, p0, Lcom/nemustech/tiffany/world/TFModel;->mTapAbsX:F

    .line 666
    iput p3, p0, Lcom/nemustech/tiffany/world/TFModel;->mTapAbsY:F

    .line 668
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mOnTouchListener:Lcom/nemustech/tiffany/world/TFModel$OnTouchListener;

    if-eqz v0, :cond_0

    .line 669
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mOnTouchListener:Lcom/nemustech/tiffany/world/TFModel$OnTouchListener;

    invoke-interface {v0, p0, p1, p2, p3}, Lcom/nemustech/tiffany/world/TFModel$OnTouchListener;->onSelected(Lcom/nemustech/tiffany/world/TFModel;IFF)Z

    move-result v0

    if-eqz v0, :cond_0

    const/4 v0, 0x1

    .line 683
    :goto_0
    return v0

    .line 672
    :cond_0
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mSelectListener:Lcom/nemustech/tiffany/world/TFWorld$OnSelectListener;

    if-eqz v0, :cond_1

    .line 674
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mSelectListener:Lcom/nemustech/tiffany/world/TFWorld$OnSelectListener;

    invoke-interface {v0, p0, p1}, Lcom/nemustech/tiffany/world/TFWorld$OnSelectListener;->onSelected(Lcom/nemustech/tiffany/world/TFModel;I)Z

    .line 683
    :goto_1
    const/4 v0, 0x0

    goto :goto_0

    .line 676
    :cond_1
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    if-eqz v0, :cond_2

    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFWorld;->mSelectListener:Lcom/nemustech/tiffany/world/TFWorld$OnSelectListener;

    if-eqz v0, :cond_2

    .line 677
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    iget-object v0, v0, Lcom/nemustech/tiffany/world/TFWorld;->mSelectListener:Lcom/nemustech/tiffany/world/TFWorld$OnSelectListener;

    invoke-interface {v0, p0, p1}, Lcom/nemustech/tiffany/world/TFWorld$OnSelectListener;->onSelected(Lcom/nemustech/tiffany/world/TFModel;I)Z

    goto :goto_1

    .line 681
    :cond_2
    const-string v0, "TFModel"

    const-string v1, "Got handleTap but locked or no listener registered or this model has been detached already."

    invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I

    goto :goto_1
.end method

.method public handleTextureMemory(IZ)V
    .locals 3
    .parameter "faceIndex"
    .parameter "shouldFree"

    .prologue
    .line 575
    const-class v1, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v1

    .line 576
    if-eqz p2, :cond_1

    .line 578
    :try_start_0
    iget-object v2, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextures:Lcom/nemustech/tiffany/world/TFTextures;

    invoke-virtual {v2, p1}, Lcom/nemustech/tiffany/world/TFTextures;->deleteTextureResource(I)V

    .line 584
    :cond_0
    :goto_0
    monitor-exit v1

    .line 585
    return-void

    .line 581
    :cond_1
    iget-object v2, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextures:Lcom/nemustech/tiffany/world/TFTextures;

    invoke-virtual {v2, p1}, Lcom/nemustech/tiffany/world/TFTextures;->getTextureInfo(I)Lcom/nemustech/tiffany/world/TFTextureInfo;

    move-result-object v0

    .line 582
    .local v0, texInfo:Lcom/nemustech/tiffany/world/TFTextureInfo;
    if-eqz v0, :cond_0

    const/4 v2, 0x0

    iput-boolean v2, v0, Lcom/nemustech/tiffany/world/TFTextureInfo;->bTextureRemovedByForce:Z

    goto :goto_0

    .line 584
    .end local v0           #texInfo:Lcom/nemustech/tiffany/world/TFTextureInfo;
    :catchall_0
    move-exception v2

    monitor-exit v1
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v2
.end method

.method public handleTextureMemory(Z)V
    .locals 3
    .parameter "shouldFree"

    .prologue
    .line 565
    iget-object v2, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextures:Lcom/nemustech/tiffany/world/TFTextures;

    invoke-virtual {v2}, Lcom/nemustech/tiffany/world/TFTextures;->getMaxTextureIndex()I

    move-result v1

    .line 566
    .local v1, maxTextureIndex:I
    const/4 v0, 0x0

    .local v0, i:I
    :goto_0
    if-gt v0, v1, :cond_0

    .line 567
    invoke-virtual {p0, v0, p1}, Lcom/nemustech/tiffany/world/TFModel;->handleTextureMemory(IZ)V

    .line 566
    add-int/lit8 v0, v0, 0x1

    goto :goto_0

    .line 569
    :cond_0
    return-void
.end method

.method handleUp(FF)Z
    .locals 4
    .parameter "x"
    .parameter "y"

    .prologue
    const/4 v3, 0x0

    const/4 v2, -0x1

    .line 705
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mOnTouchListener:Lcom/nemustech/tiffany/world/TFModel$OnTouchListener;

    if-eqz v0, :cond_0

    .line 706
    iput-boolean v3, p0, Lcom/nemustech/tiffany/world/TFModel;->mLongPressValid:Z

    .line 707
    sget-object v0, Lcom/nemustech/tiffany/world/TFModel;->mHandler:Landroid/os/Handler;

    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mLongPressHandler:Ljava/lang/Runnable;

    invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V

    .line 708
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mOnTouchListener:Lcom/nemustech/tiffany/world/TFModel$OnTouchListener;

    iget v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mTouchedIndex:I

    invoke-interface {v0, p0, v1, p1, p2}, Lcom/nemustech/tiffany/world/TFModel$OnTouchListener;->onTouchUp(Lcom/nemustech/tiffany/world/TFModel;IFF)Z

    move-result v0

    if-eqz v0, :cond_0

    .line 709
    iput v2, p0, Lcom/nemustech/tiffany/world/TFModel;->mTouchedIndex:I

    .line 710
    const/4 v0, 0x1

    .line 715
    :goto_0
    return v0

    .line 713
    :cond_0
    invoke-virtual {p0, p1, p2}, Lcom/nemustech/tiffany/world/TFModel;->onTouchUp(FF)V

    .line 714
    iput v2, p0, Lcom/nemustech/tiffany/world/TFModel;->mTouchedIndex:I

    move v0, v3

    .line 715
    goto :goto_0
.end method

.method public isBackFaceVisible()Z
    .locals 2

    .prologue
    .line 244
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 245
    :try_start_0
    iget-boolean v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mShowBackFace:Z

    monitor-exit v0

    return v1

    .line 246
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method isGoingToStop()Z
    .locals 1

    .prologue
    .line 255
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mParentHolder:Lcom/nemustech/tiffany/world/TFHolder;

    if-nez v0, :cond_0

    .line 256
    invoke-super {p0}, Lcom/nemustech/tiffany/world/TFObject;->isGoingToStop()Z

    move-result v0

    .line 258
    :goto_0
    return v0

    :cond_0
    invoke-super {p0}, Lcom/nemustech/tiffany/world/TFObject;->isGoingToStop()Z

    move-result v0

    if-eqz v0, :cond_1

    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mParentHolder:Lcom/nemustech/tiffany/world/TFHolder;

    invoke-virtual {v0}, Lcom/nemustech/tiffany/world/TFHolder;->isGoingToStop()Z

    move-result v0

    if-eqz v0, :cond_1

    const/4 v0, 0x1

    goto :goto_0

    :cond_1
    const/4 v0, 0x0

    goto :goto_0
.end method

.method public isSafeToRecycleFaceImage(I)Z
    .locals 6
    .parameter "faceIndex"

    .prologue
    const/4 v5, 0x0

    .line 136
    const-class v2, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v2

    .line 137
    const/4 v0, 0x0

    .line 138
    .local v0, bSafe:Z
    :try_start_0
    iget-object v3, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextures:Lcom/nemustech/tiffany/world/TFTextures;

    invoke-virtual {v3, p1}, Lcom/nemustech/tiffany/world/TFTextures;->getTextureInfo(I)Lcom/nemustech/tiffany/world/TFTextureInfo;

    move-result-object v1

    .line 140
    .local v1, texInfo:Lcom/nemustech/tiffany/world/TFTextureInfo;
    if-eqz v1, :cond_0

    .line 141
    iget-object v3, v1, Lcom/nemustech/tiffany/world/TFTextureInfo;->mLayer:[Lcom/nemustech/tiffany/world/TFTextureInfo$TFTextureLayer;

    const/4 v4, 0x0

    aget-object v3, v3, v4

    iget-object v3, v3, Lcom/nemustech/tiffany/world/TFTextureInfo$TFTextureLayer;->bmp:Landroid/graphics/Bitmap;

    if-nez v3, :cond_1

    const/4 v3, 0x1

    move v0, v3

    .line 143
    :cond_0
    :goto_0
    monitor-exit v2

    return v0

    :cond_1
    move v0, v5

    .line 141
    goto :goto_0

    .line 144
    .end local v1           #texInfo:Lcom/nemustech/tiffany/world/TFTextureInfo;
    :catchall_0
    move-exception v3

    monitor-exit v2
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v3
.end method

.method public isTouchable()Z
    .locals 2

    .prologue
    .line 771
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 772
    :try_start_0
    iget-boolean v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mTouchable:Z

    monitor-exit v0

    return v1

    .line 773
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public isVisible()Z
    .locals 2

    .prologue
    .line 778
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 779
    :try_start_0
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mParentHolder:Lcom/nemustech/tiffany/world/TFHolder;

    if-eqz v1, :cond_0

    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mParentHolder:Lcom/nemustech/tiffany/world/TFHolder;

    invoke-virtual {v1}, Lcom/nemustech/tiffany/world/TFHolder;->isVisible()Z

    move-result v1

    if-nez v1, :cond_0

    .line 780
    const/4 v1, 0x0

    monitor-exit v0

    move v0, v1

    .line 782
    :goto_0
    return v0

    :cond_0
    iget-boolean v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mVisible:Z

    monitor-exit v0

    move v0, v1

    goto :goto_0

    .line 783
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public lockImageCache()V
    .locals 2

    .prologue
    .line 588
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 589
    const/4 v1, 0x1

    :try_start_0
    iput-boolean v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mLockImageCache:Z

    .line 590
    monitor-exit v0

    .line 591
    return-void

    .line 590
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method protected onAfterDraw(Ljavax/microedition/khronos/opengles/GL10;I)V
    .locals 0
    .parameter "gl"
    .parameter "tickPassed"

    .prologue
    .line 275
    return-void
.end method

.method protected onBeforeDraw(Ljavax/microedition/khronos/opengles/GL10;I)Z
    .locals 1
    .parameter "gl"
    .parameter "tickPassed"

    .prologue
    .line 266
    const/4 v0, 0x1

    return v0
.end method

.method protected onCalcReflection(Ljavax/microedition/khronos/opengles/GL10;F)V
    .locals 6
    .parameter "gl"
    .parameter "y"

    .prologue
    const/4 v5, 0x2

    const/4 v4, 0x1

    const/high16 v3, 0x3f80

    const/4 v2, 0x0

    .line 287
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mAngle:[F

    aget v0, v0, v4

    neg-float v0, v0

    invoke-interface {p1, v0, v3, v2, v2}, Ljavax/microedition/khronos/opengles/GL10;->glRotatef(FFFF)V

    .line 288
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mAngle:[F

    aget v0, v0, v5

    neg-float v0, v0

    invoke-interface {p1, v0, v2, v2, v3}, Ljavax/microedition/khronos/opengles/GL10;->glRotatef(FFFF)V

    .line 289
    const/high16 v0, 0x4000

    mul-float/2addr v0, p2

    iget v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mHeight:F

    add-float/2addr v0, v1

    neg-float v0, v0

    invoke-interface {p1, v2, v0, v2}, Ljavax/microedition/khronos/opengles/GL10;->glTranslatef(FFF)V

    .line 290
    const/high16 v0, -0x4080

    invoke-interface {p1, v3, v0, v3}, Ljavax/microedition/khronos/opengles/GL10;->glScalef(FFF)V

    .line 291
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mAngle:[F

    aget v0, v0, v4

    invoke-interface {p1, v0, v3, v2, v2}, Ljavax/microedition/khronos/opengles/GL10;->glRotatef(FFFF)V

    .line 292
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mAngle:[F

    aget v0, v0, v5

    invoke-interface {p1, v0, v2, v2, v3}, Ljavax/microedition/khronos/opengles/GL10;->glRotatef(FFFF)V

    .line 293
    return-void
.end method

.method protected onCullFace(IZ)I
    .locals 2
    .parameter "index"
    .parameter "reflection"

    .prologue
    const/16 v1, 0x405

    const/16 v0, 0x404

    .line 281
    if-nez p1, :cond_2

    if-eqz p2, :cond_1

    :cond_0
    :goto_0
    return v0

    :cond_1
    move v0, v1

    goto :goto_0

    :cond_2
    if-eqz p2, :cond_0

    move v0, v1

    goto :goto_0
.end method

.method protected onDraw(Ljavax/microedition/khronos/opengles/GL10;I)Z
    .locals 1
    .parameter "gl"
    .parameter "tickPassed"

    .prologue
    .line 271
    const/4 v0, 0x1

    return v0
.end method

.method protected onDrawVertex(Ljavax/microedition/khronos/opengles/GL10;IZ)V
    .locals 3
    .parameter "gl"
    .parameter "index"
    .parameter "reflection"

    .prologue
    .line 311
    const/4 v0, 0x5

    mul-int/lit8 v1, p2, 0x4

    const/4 v2, 0x4

    invoke-interface {p1, v0, v1, v2}, Ljavax/microedition/khronos/opengles/GL10;->glDrawArrays(III)V

    .line 312
    return-void
.end method

.method protected onSetOpacity(Ljavax/microedition/khronos/opengles/GL10;FZ)V
    .locals 3
    .parameter "gl"
    .parameter "opacity"
    .parameter "reflection"

    .prologue
    const/high16 v2, 0x3f80

    .line 298
    if-eqz p3, :cond_0

    .line 299
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    iget v1, v1, Lcom/nemustech/tiffany/world/TFWorld;->mReflectionOpacity:F

    mul-float v0, p2, v1

    .line 300
    .local v0, finalOpacity:F
    invoke-interface {p1, v0, v0, v0, v2}, Ljavax/microedition/khronos/opengles/GL10;->glColor4f(FFFF)V

    .line 308
    :goto_0
    return-void

    .line 302
    .end local v0           #finalOpacity:F
    :cond_0
    move v0, p2

    .line 303
    .restart local v0       #finalOpacity:F
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    invoke-virtual {v1}, Lcom/nemustech/tiffany/world/TFWorld;->isBlendingMode()Z

    move-result v1

    if-eqz v1, :cond_1

    .line 304
    invoke-interface {p1, v2, v2, v2, v0}, Ljavax/microedition/khronos/opengles/GL10;->glColor4f(FFFF)V

    goto :goto_0

    .line 306
    :cond_1
    invoke-interface {p1, v0, v0, v0, v2}, Ljavax/microedition/khronos/opengles/GL10;->glColor4f(FFFF)V

    goto :goto_0
.end method

.method protected onSetTexture(Ljavax/microedition/khronos/opengles/GL10;II)V
    .locals 1
    .parameter "gl"
    .parameter "index"
    .parameter "layer"

    .prologue
    .line 315
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextures:Lcom/nemustech/tiffany/world/TFTextures;

    invoke-virtual {v0, p1, p2, p3}, Lcom/nemustech/tiffany/world/TFTextures;->setTextureByIndex(Ljavax/microedition/khronos/opengles/GL10;II)V

    .line 316
    return-void
.end method

.method protected onTouchDown(FF)V
    .locals 0
    .parameter "x"
    .parameter "y"

    .prologue
    .line 653
    return-void
.end method

.method protected onTouchDrag(FFFFI)V
    .locals 0
    .parameter "start_x"
    .parameter "start_y"
    .parameter "end_x"
    .parameter "end_y"
    .parameter "tickPassed"

    .prologue
    .line 659
    return-void
.end method

.method protected onTouchUp(FF)V
    .locals 0
    .parameter "x"
    .parameter "y"

    .prologue
    .line 656
    return-void
.end method

.method public printModelState()V
    .locals 1

    .prologue
    .line 1043
    const/4 v0, 0x0

    invoke-virtual {p0, v0}, Lcom/nemustech/tiffany/world/TFModel;->printModelState(I)V

    .line 1044
    return-void
.end method

.method public printModelState(I)V
    .locals 7
    .parameter "level"

    .prologue
    .line 1047
    const-class v3, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v3

    .line 1048
    :try_start_0
    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    .line 1049
    .local v1, sb:Ljava/lang/StringBuilder;
    const-string v2, "|  "

    .line 1050
    .local v2, space:Ljava/lang/String;
    const/4 v0, 0x0

    .local v0, i:I
    :goto_0
    if-ge v0, p1, :cond_0

    .line 1051
    const-string v4, " "

    invoke-virtual {v2, v4}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v2

    .line 1050
    add-int/lit8 v0, v0, 0x1

    goto :goto_0

    .line 1052
    :cond_0
    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, "Model -"

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    invoke-virtual {p0}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object v5

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, "\tDescription: "

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    iget-object v5, p0, Lcom/nemustech/tiffany/world/TFModel;->mDescription:Ljava/lang/String;

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, "\tItemIndex: "

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    iget v5, p0, Lcom/nemustech/tiffany/world/TFModel;->mItemIndex:I

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, "\n"

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 1053
    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, "       should draw: "

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    iget-boolean v5, p0, Lcom/nemustech/tiffany/world/TFModel;->mShouldDraw:Z

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, "\tvisibility: "

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    iget-boolean v5, p0, Lcom/nemustech/tiffany/world/TFModel;->mVisible:Z

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, "\topacity: "

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    iget v5, p0, Lcom/nemustech/tiffany/world/TFModel;->mOpacity:F

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, "\ttouchable: "

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    iget-boolean v5, p0, Lcom/nemustech/tiffany/world/TFModel;->mTouchable:Z

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, "\n"

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 1054
    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, "       location: "

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    iget-object v5, p0, Lcom/nemustech/tiffany/world/TFModel;->mLocation:[F

    const/4 v6, 0x0

    aget v5, v5, v6

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, ", "

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    iget-object v5, p0, Lcom/nemustech/tiffany/world/TFModel;->mLocation:[F

    const/4 v6, 0x1

    aget v5, v5, v6

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, ", "

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    iget-object v5, p0, Lcom/nemustech/tiffany/world/TFModel;->mLocation:[F

    const/4 v6, 0x2

    aget v5, v5, v6

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, "\n"

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 1055
    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, "       Texture: "

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    iget-object v5, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextures:Lcom/nemustech/tiffany/world/TFTextures;

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, "\n"

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 1056
    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, "       parentHolder: "

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    iget-object v5, p0, Lcom/nemustech/tiffany/world/TFModel;->mParentHolder:Lcom/nemustech/tiffany/world/TFHolder;

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    move-result-object v4

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 1057
    const-string v4, "HOLDER_STAT"

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v5

    invoke-static {v4, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 1058
    monitor-exit v3

    .line 1059
    return-void

    .line 1058
    .end local v0           #i:I
    .end local v1           #sb:Ljava/lang/StringBuilder;
    .end local v2           #space:Ljava/lang/String;
    :catchall_0
    move-exception v4

    monitor-exit v3
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v4
.end method

.method public setBackFaceVisibility(Z)V
    .locals 2
    .parameter "visibility"

    .prologue
    .line 238
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 239
    :try_start_0
    iput-boolean p1, p0, Lcom/nemustech/tiffany/world/TFModel;->mShowBackFace:Z

    .line 240
    monitor-exit v0

    .line 241
    return-void

    .line 240
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public setBeautyReflection(Z)V
    .locals 2
    .parameter "mode"

    .prologue
    .line 751
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 752
    :try_start_0
    iput-boolean p1, p0, Lcom/nemustech/tiffany/world/TFModel;->mBeautyReflection:Z

    .line 753
    monitor-exit v0

    .line 754
    return-void

    .line 753
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public setColorMasking(FFF)V
    .locals 2
    .parameter "red"
    .parameter "green"
    .parameter "blue"

    .prologue
    .line 219
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 220
    const/4 v1, 0x1

    :try_start_0
    iput-boolean v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mColorMask:Z

    .line 221
    iput p1, p0, Lcom/nemustech/tiffany/world/TFModel;->mColorMaskR:F

    .line 222
    iput p2, p0, Lcom/nemustech/tiffany/world/TFModel;->mColorMaskG:F

    .line 223
    iput p3, p0, Lcom/nemustech/tiffany/world/TFModel;->mColorMaskB:F

    .line 224
    monitor-exit v0

    .line 225
    return-void

    .line 224
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public setFaceFront(Z)V
    .locals 2
    .parameter "mode"

    .prologue
    .line 736
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 737
    :try_start_0
    iput-boolean p1, p0, Lcom/nemustech/tiffany/world/TFModel;->mFacingFront:Z

    .line 738
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    if-eqz v1, :cond_0

    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    invoke-static {}, Lcom/nemustech/tiffany/world/TFWorld;->requestRender()V

    .line 739
    :cond_0
    monitor-exit v0

    .line 740
    return-void

    .line 739
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public setImageResource(ILandroid/content/res/Resources;I)Lcom/nemustech/tiffany/world/TFError;
    .locals 2
    .parameter "faceIndex"
    .parameter "resources"
    .parameter "resource_id"

    .prologue
    .line 478
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 479
    :try_start_0
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextures:Lcom/nemustech/tiffany/world/TFTextures;

    invoke-virtual {v1, p1, p2, p3}, Lcom/nemustech/tiffany/world/TFTextures;->setImageResource(ILandroid/content/res/Resources;I)V

    .line 480
    sget-object v1, Lcom/nemustech/tiffany/world/TFError;->ERROR_NONE:Lcom/nemustech/tiffany/world/TFError;

    monitor-exit v0

    return-object v1

    .line 481
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public setImageResource(ILjava/lang/String;)Lcom/nemustech/tiffany/world/TFError;
    .locals 2
    .parameter "faceIndex"
    .parameter "fileName"

    .prologue
    .line 461
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 462
    :try_start_0
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextures:Lcom/nemustech/tiffany/world/TFTextures;

    invoke-virtual {v1, p1, p2}, Lcom/nemustech/tiffany/world/TFTextures;->setImageResource(ILjava/lang/String;)V

    .line 463
    sget-object v1, Lcom/nemustech/tiffany/world/TFError;->ERROR_NONE:Lcom/nemustech/tiffany/world/TFError;

    monitor-exit v0

    return-object v1

    .line 464
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public setImageResource(ILandroid/graphics/Bitmap;)Z
    .locals 2
    .parameter "faceIndex"
    .parameter "bmp"

    .prologue
    .line 526
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 527
    const/4 v1, 0x0

    :try_start_0
    invoke-virtual {p0, p1, p2, v1}, Lcom/nemustech/tiffany/world/TFModel;->setImageResource(ILandroid/graphics/Bitmap;Landroid/graphics/Rect;)Z

    move-result v1

    monitor-exit v0

    return v1

    .line 528
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public setImageResource(ILandroid/graphics/Bitmap;Landroid/graphics/Rect;)Z
    .locals 2
    .parameter "faceIndex"
    .parameter "bmp"
    .parameter "rectSet"

    .prologue
    .line 540
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 541
    :try_start_0
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextures:Lcom/nemustech/tiffany/world/TFTextures;

    invoke-virtual {v1, p1, p2, p3}, Lcom/nemustech/tiffany/world/TFTextures;->setImageResource(ILandroid/graphics/Bitmap;Landroid/graphics/Rect;)Z

    move-result v1

    monitor-exit v0

    return v1

    .line 542
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public setJitImageProvider(Lcom/nemustech/tiffany/world/TFModel$JitImageProvider;)V
    .locals 2
    .parameter "jitImageProvider"

    .prologue
    .line 179
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 180
    :try_start_0
    iput-object p1, p0, Lcom/nemustech/tiffany/world/TFModel;->mJitImageProvider:Lcom/nemustech/tiffany/world/TFModel$JitImageProvider;

    .line 181
    monitor-exit v0

    .line 182
    return-void

    .line 181
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public setOnTouchListener(Lcom/nemustech/tiffany/world/TFModel$OnTouchListener;)V
    .locals 2
    .parameter "onTouchListener"

    .prologue
    .line 209
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 210
    :try_start_0
    iput-object p1, p0, Lcom/nemustech/tiffany/world/TFModel;->mOnTouchListener:Lcom/nemustech/tiffany/world/TFModel$OnTouchListener;

    .line 211
    monitor-exit v0

    .line 212
    return-void

    .line 211
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public setTouchable(Z)V
    .locals 2
    .parameter "mode"

    .prologue
    .line 765
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 766
    :try_start_0
    iput-boolean p1, p0, Lcom/nemustech/tiffany/world/TFModel;->mTouchable:Z

    .line 767
    monitor-exit v0

    .line 768
    return-void

    .line 767
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public setTouchedFace(I)V
    .locals 2
    .parameter "faceIndex"

    .prologue
    .line 1076
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 1077
    :try_start_0
    iput p1, p0, Lcom/nemustech/tiffany/world/TFModel;->mTouchedIndex:I

    .line 1078
    monitor-exit v0

    .line 1079
    return-void

    .line 1078
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public showEffect(II)V
    .locals 7
    .parameter "effectID"
    .parameter "faceIndex"

    .prologue
    .line 631
    const-class v6, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v6

    .line 632
    packed-switch p1, :pswitch_data_0

    .line 649
    :goto_0
    :try_start_0
    monitor-exit v6

    .line 650
    return-void

    .line 634
    :pswitch_0
    const/4 v0, 0x0

    const/4 v1, 0x0

    const-wide/16 v2, 0x7d0

    invoke-virtual {p0, v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFModel;->rotate(FFJ)V

    .line 635
    const/4 v0, 0x0

    const/4 v1, 0x0

    const v2, 0x3fcccccd

    const v3, 0x3c23d70a

    invoke-virtual {p0, v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFModel;->move(FFFF)V

    goto :goto_0

    .line 649
    :catchall_0
    move-exception v0

    monitor-exit v6
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v0

    .line 638
    :pswitch_1
    const/high16 v0, 0x4434

    const/high16 v1, 0x4434

    const-wide/16 v2, 0x7d0

    :try_start_1
    invoke-virtual {p0, v0, v1, v2, v3}, Lcom/nemustech/tiffany/world/TFModel;->rotate(FFJ)V

    .line 639
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mLocation:[F

    const/4 v1, 0x0

    aget v1, v0, v1

    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mLocation:[F

    const/4 v2, 0x1

    aget v2, v0, v2

    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mWorld:Lcom/nemustech/tiffany/world/TFWorld;

    invoke-virtual {v0}, Lcom/nemustech/tiffany/world/TFWorld;->getDepth()F

    move-result v0

    neg-float v3, v0

    const-wide/16 v4, 0x7d0

    move-object v0, p0

    invoke-virtual/range {v0 .. v5}, Lcom/nemustech/tiffany/world/TFModel;->move(FFFJ)V

    .line 640
    new-instance v0, Lcom/nemustech/tiffany/world/TFModel$2;

    invoke-direct {v0, p0}, Lcom/nemustech/tiffany/world/TFModel$2;-><init>(Lcom/nemustech/tiffany/world/TFModel;)V

    invoke-virtual {p0, v0}, Lcom/nemustech/tiffany/world/TFModel;->setEffectFinishListener(Lcom/nemustech/tiffany/world/TFWorld$OnEffectFinishListener;)V
    :try_end_1
    .catchall {:try_start_1 .. :try_end_1} :catchall_0

    goto :goto_0

    .line 632
    nop

    :pswitch_data_0
    .packed-switch 0x0
        :pswitch_0
        :pswitch_1
    .end packed-switch
.end method

.method public swapFaces()V
    .locals 2

    .prologue
    .line 1062
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 1065
    :try_start_0
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mTextures:Lcom/nemustech/tiffany/world/TFTextures;

    invoke-virtual {v1}, Lcom/nemustech/tiffany/world/TFTextures;->swapFaces()V

    .line 1066
    monitor-exit v0

    .line 1067
    return-void

    .line 1066
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public unlockImageCache()V
    .locals 2

    .prologue
    .line 594
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 595
    const/4 v1, 0x0

    :try_start_0
    iput-boolean v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mLockImageCache:Z

    .line 596
    monitor-exit v0

    .line 597
    return-void

    .line 596
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method public unsetColorMasking()V
    .locals 2

    .prologue
    .line 228
    const-class v0, Lcom/nemustech/tiffany/world/TFWorld;

    monitor-enter v0

    .line 229
    const/4 v1, 0x0

    :try_start_0
    iput-boolean v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mColorMask:Z

    .line 230
    monitor-exit v0

    .line 231
    return-void

    .line 230
    :catchall_0
    move-exception v1

    monitor-exit v0
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    throw v1
.end method

.method updateHitPoint()V
    .locals 3

    .prologue
    .line 863
    const/4 v0, 0x0

    .local v0, i:I
    :goto_0
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mHitPoint:[F

    array-length v1, v1

    if-ge v0, v1, :cond_0

    .line 864
    iget-object v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mHitPoint:[F

    const/high16 v2, 0x7fc0

    aput v2, v1, v0

    .line 863
    add-int/lit8 v0, v0, 0x1

    goto :goto_0

    .line 865
    :cond_0
    const/4 v1, -0x1

    iput v1, p0, Lcom/nemustech/tiffany/world/TFModel;->mHitFace:I

    .line 866
    return-void
.end method

.method updateHitTestLine([F)V
    .locals 11
    .parameter "hitTestLine"

    .prologue
    const/4 v10, 0x4

    const/4 v1, 0x0

    .line 850
    iget-object v2, p0, Lcom/nemustech/tiffany/world/TFModel;->mUnMVBuffer:[F

    .line 851
    .local v2, m:[F
    const/4 v9, 0x0

    .line 853
    .local v9, _invertMV:I
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mMatrix:[F

    invoke-static {v2, v1, v0, v1}, Landroid/opengl/Matrix;->invertM([FI[FI)Z

    .line 854
    iget-object v0, p0, Lcom/nemustech/tiffany/world/TFModel;->mHitTestLine:[F

    move v3, v1

    move-object v4, p1

    move v5, v1

    invoke-static/range {v0 .. v5}, Landroid/opengl/Matrix;->multiplyMV([FI[FI[FI)V

    .line 855
    iget-object v3, p0, Lcom/nemustech/tiffany/world/TFModel;->mHitTestLine:[F

    move v4, v10

    move-object v5, v2

    move v6, v1

    move-object v7, p1

    move v8, v10

    invoke-static/range {v3 .. v8}, Landroid/opengl/Matrix;->multiplyMV([FI[FI[FI)V

    .line 856
    return-void
.end method
